home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Playboy Electronic Datebook
/
Playboy Electronic Datebook - Disk 1.img
/
PBINST.MS_
/
PBINST.MS
Wrap
Text File
|
1993-10-22
|
24KB
|
727 lines
'**************************************************************************
'* Playboy Electronic Datebook
'**************************************************************************
'' not defined
''$DEFINE DEBUG ''Define for script development/debugging
'$DEFINE VERSION
'$DEFINE STARTUP_ICON
''$DEFINE SAMPLER
''$DEFINE SPEAKER
'$DEFINE NUKE_SAMPLER
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
'$INCLUDE 'msregdb.inc'
'$INCLUDE 'strings.inc'
'$INCLUDE 'pbinst.inc'
'$INCLUDE 'misc.inc'
'$IFDEF VERSION
'$INCLUDE 'version.inc'
'$INCLUDE 'version.mst'
'$ENDIF
''________________________________________________________________
''
'$IFDEF DEBUG
ECHO ON ''sends output to debug monitor
'$ELSE
ECHO OFF
'$ENDIF
GLOBAL bWinDirAccess%
GLOBAL bWinSysDirAccess%
GLOBAL bInstallPrefs%
INIT:
iMaxNumTP% = 20 ''arbitrary
bWinDirAccess% = TRUE
bWinSysDirAccess% = TRUE
bInstallPrefs% = TRUE
bRestart% = FALSE
''Initialize BadFileList
BadFileList$ = "BadFileList"
CUIDLL$ = CUSTOMDLL ''custom user interface dll
HELPPROC$ = HELPPROCEDURE ''Help dialog procedure
SYSDATETIME$ = DATETIME$ ''Get system date and time
SetAbout ABOUTTITLE1, ABOUTTITLE2
SetBitmap CUIDLL$, LOGO
SetTitle ABOUTTITLE1
SrcDir$ = GetSymbolValue("STF_SRCDIR")
szInstIni$ = GetSymbolValue("STF_CWDDIR") + INSTINI
'' Debug PRINT szInstIni$
SPLASH% = VAL(GetIniKeyString(szInstIni$, INI_SEC_INFORMATION, INI_KEY_SPLASH))
bInstallCtl3D% = VAL(GetIniKeyString(szInstIni$, INI_SEC_INFORMATION, INF_KEY_CTL3D ))
''** Check if the Planner is running already
bIsADPRunning% = FindWindow(CLASSNAME_PBEDB, 0)
''PRINT bIsADPRunning%
IF bIsADPRunning% THEN
iRC% = DoMsgBox(ERROR_ADP_RUNNING, ERROR_CAPTION, MB_ICONHAND+MB_TASKMODAL+MB_OK)
ERR = 21
GOTO QUIT
END IF
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + INF
END IF
'' Debug PRINT "szInf$ = "+szInf$
ReadInfFile szInf$
WINDRIVE$ = MID$(GetWindowsDir(), 1, 1)
IF IsDriveValid(WINDRIVE$) = 0 THEN
iRC% = DoMsgBox(ERROR_NOWINDIRACCESS + CHR$(13) + CHR$(13) + GetWindowsDir(), ERROR_CAPTION, MB_ICONHAND+MB_TASKMODAL+MB_OK)
ERR = -1 '' install failure
goto QUIT
END IF
IF IsDirWritable(GetWindowsDir()) = 0 THEN
bWinDirAccess% = FALSE
iRC% = DoMsgBox(ERROR_NOWINDIRACCESS + CHR$(13) + CHR$(13) + GetWindowsDir(), ERROR_CAPTION, MB_ICONHAND+MB_TASKMODAL+MB_OK)
ERR = -1 '' install failure
goto QUIT
END IF
IF IsDirWritable(GetWindowsSysDir()) = 0 THEN
bWinSysDirAccess% = FALSE
END IF
ini$ = MakePath(GetWindowsDir(), AMAZEINI)
'' Check if Amaze.ini is read/writeable. Quit if it is not. If it doesn't exist, don't worry about it
IF DoesFileExist(ini$, femExists) THEN
IF DoesFileExist(ini$, femReadWrite) = 0 THEN
iRC% = DoMsgBox(ini$ + ERROR_INI_NOT_RW, ERROR_CAPTION, MB_ICONHAND+MB_TASKMODAL+MB_OK)
ERR = -1 '' install failure
goto QUIT
END IF
END IF
DEST$ = FindTargetOnEnvVar(FILENAME_PBEDB, ENV_VAR_PATH)
IF DEST$ <> "" THEN
SPLITPATH DEST$, szDRV$, szDIR$, szFileName$, szEXT$
DEST$ = szDRV$ + szDIR$
ELSE
IF DoesIniKeyExist(ini$, INI_SEC_INSTALL_INFO, INI_KEY_PROGPATH) THEN
DEST$ = GetIniKeyString(ini$, INI_SEC_INSTALL_INFO, INI_KEY_PROGPATH)
IF (DoesFileExist(MakePath(DEST$,FILENAME_PBEDB), femExists)) THEN
DEST$ = DEST$
ELSE
DEST$ = WINDRIVE$ + ":\" + PROGDIR
END IF
ELSE
DEST$ = WINDRIVE$ + ":\" + PROGDIR
END IF
ENDIF
''*** check if multimedia capable machine
bIsMultimedia% = FALSE
SYSINI$ = MakePath(GetWindowsDir(), FILE_SYSINI)
IF LCASE$(GetIniKeyString(SYSINI$,INI_SEC_BOOT,INI_KEY_DRIVERS)) = FILE_MMSYSTEMDLL THEN
bIsMultimedia% = TRUE
END IF
''*** setup the lists needed during install
''CustInst list symbols
CHECKSTATES$ = "CheckItemsState"
STATUSTEXT$ = "StatusItemsText"
CONFIRMTEXTIN$ = "ConfirmTextIn"
FOR i% = 1 TO 2 STEP 1
AddListItem CONFIRMTEXTIN$, ""
NEXT i%
FOR i% = 1 TO 2 STEP 1
AddListItem CHECKSTATES$, "ON"
NEXT i%
FOR i% = 1 TO 2 STEP 1
AddListItem STATUSTEXT$, ""
NEXT i%
''Disk cost list symbols
APPNEEDS$ = "AppNeeds"
OTHERNEEDS$ = "OtherNeeds"
EXTRACOSTS$ = "ExtraCosts"
BIGLIST$ = "BigList"
FOR i% = 1 TO 2 STEP 1 ''I think there are only two items on this list
AddListItem BIGLIST$, ""
NEXT i%
FOR i% = 1 TO 26 STEP 1
AddListItem EXTRACOSTS$, "0"
NEXT i%
RecalcPath
'$IFDEF DEBUG
i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
'$ENDIF ''DEBUG
WELCOME:
WELCOME_TEXT1$ = GetIniKeyString(szInstIni$, INI_SEC_INFORMATION, INI_KEY_WEL_TEXT1)
WELCOME_TEXT1PT2$ = GetIniKeyString(szInstIni$, INI_SEC_INFORMATION, INI_KEY_WEL_TEXT1PT2)
WELCOME_TEXT2$ = GetIniKeyString(szInstIni$, INI_SEC_INFORMATION, INI_KEY_WEL_TEXT2)
WELCOME_TEXT2PT2$ = GetIniKeyString(szInstIni$, INI_SEC_INFORMATION, INI_KEY_WEL_TEXT2PT2)
szConfirmText$ = WELCOME_TEXT1 + WELCOME_TEXT1PT2$
szConfirmText2$ = WELCOME_TEXT2 + WELCOME_TEXT2PT2
DlgCaption$ = "DlgCaption"
SetSymbolValue DlgCaption$, WELCOME_CAPTION
ReplaceListItem CONFIRMTEXTIN$, 1, szConfirmText$
ReplaceListItem CONFIRMTEXTIN$, 2, szConfirmText2$
IF (SPLASH% = TRUE) AND (GetScreenHeight() > 400) THEN
sz$ = UIStartDlg(CUIDLL$, WELCOMESPLASH, "FSplashDlgProc", WELCOMEHELP, HELPPROC$)
ELSE
sz$ = UIStartDlg(CUIDLL$, WELCOME, "FWelcomeDlgProc", WELCOMEHELP, HELPPROC$)
END IF
IF sz$ = "EXIT" THEN
UIPopAll
GOSUB ASKQUIT
GOTO WELCOME
ELSEIF sz$ = "REACTIVATE" THEN
GOTO WELCOME
ELSE
UIPop 1
END IF
GETINITIALPATH:
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "END"
GETINITIALPATHL1:
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", DESTHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
olddest$ = DEST$
DEST$ = GetSymbolValue("EditTextOut")
''Validate new path.
IF IsDirWritable(DEST$) = 0 THEN
GOSUB BADPATH
GOTO GETINITIALPATHL1
END IF
UIPop 1
''Recalc if path changed.
IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
RecalcPath
END IF
olddest$ = ""
ELSEIF sz$ = "REACTIVATE" THEN
RecalcPath
GOTO GETINITIALPATHL1
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO GETINITIALPATHL1
ELSE
UIPop 1
END IF
INSTALL:
'$IFDEF VERSION
IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
iR% = VERSION(DEST$, szInstIni$, INI_KEY_VERSION) '' Does all version checking
END IF
'$ENDIF
IF DoesFileExist(MakePath(DEST$, GetSectionKeyFilename(INF_SEC_PREFS,INF_KEY_PREFS)), femExists) THEN
iResponse% = MsgYesNo(PREFS_EXISTS, PREFS_OVERWRITE, UPDATE_CAPTION)
IF iResponse% = NO THEN
bInstallPrefs% = FALSE
ENDIF
END IF
ClearCopyList
AddOptFilesToCopyList APPFILES
RecalcPath
FOR i% = APPFILES TO APPFILES STEP 1
IF GetListItem(BIGLIST$, i%) <> "" THEN
GOSUB TOOBIG
GOTO GETPATH
END IF
NEXT i%
CreateDir DEST$, cmoNone
'$IFDEF BILLBOARDS
SetCopyGaugePosition 160, 10 ''** set up copy gauge right horiz. and near the top of the window
'''*** set the billboard for either win30 or 31+.
nWinMajVer% = GetWindowsMajorVersion()
nWinMinVer% = GetWindowsMinorVersion()
IF (nWinMajVer% <= 3) AND NOT(nWinMinVer% >= 10) THEN
AddToBillBoardList CUIDLL$, BILLBOARD1_30, "FModelessDlgProc", 1
AddToBillBoardList CUIDLL$, BILLBOARD2_30, "FModelessDlgProc", 1
'AddToBillBoardList CUIDLL$, BILLBOARD3_30, "FModelessDlgProc", 1
ELSE
AddToBillBoardList CUIDLL$, BILLBOARD1, "FModelessDlgProc", 1
AddToBillBoardList CUIDLL$, BILLBOARD2, "FModelessDlgProc", 1
'AddToBillBoardList CUIDLL$, BILLBOARD3, "FModelessDlgProc", 1
END IF
'$ENDIF
CopyFilesInCopyList
PERSONALIZE:
DestExe$ = MakePath(DEST$, GetSectionKeyFilename(INF_SEC_APPFILES,INF_KEY_EXE))
IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
sz$ = UIStartDlg(CUIDLL$, CBGETNAMEORG, "FNameOrgDlgProc", 0, "")
IF sz$ = "CONTINUE" THEN
USERNAME$ = GetSymbolValue ("NameOut")
IF USERNAME$ = "" THEN
GOSUB BADNAME
GOTO PERSONALIZE
END IF
USERORG$ = GetSymbolValue ("OrgOut")
iRC% = WriteStrResource (DestExe$, IDS_User_Name, USERNAME$)
IF iRC% < 0 THEN
'' Debug PRINT iRC%
GOTO QUIT
END IF
iRC% = WriteStrResource (DestExe$, IDS_Company_Name, USERORG$)
IF iRC% < 0 THEN
'' Debug PRINT iRC%
GOTO QUIT
END IF
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO PERSONALIZE
ELSE '' "EXIT"
GOSUB ASKQUIT
GOTO PERSONALIZE
END IF
END IF
'' Trap all preceding errors before updating autoexec
ON ERROR GOTO ERRQUIT
ADD_MISC_WIN_INFO:
IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
CursorSave% = ShowWaitCursor()
''*** write location appfiles were installed to in Amaze.ini
CreateIniKeyValue ini$, INI_SEC_INSTALL_INFO, INI_KEY_PROGPATH , DEST$, cmoOverwrite
''*** point app to sample file
CreateIniKeyValue ini$, INI_SEC_INTERNAL, INI_KEY_EVENT_FILE, MakePath(DEST$,GetSectionKeyFilename(INF_SEC_APPFILES, INF_KEY_SAMPLE_FILE)), cmoNone
''*** Add DP and CE to registration database - delete existing reg keys
IF DoesRegKeyExist(REG_KEY_DPFILE) THEN
DeleteRegKey REG_KEY_DPFILE
END IF
CreateRegKeyValue REG_KEY_DPFILE, REG_VALUE_DAILY_PLANNER_FILE
CreateRegKeyValue REG_KEY_DPFILE+REG_KEY_OPEN, DestExe$ + REG_VALUE_FILE_MARKER
IF DoesRegKeyExist(REG_FILE_EXT_DP) THEN
DeleteRegKey REG_FILE_EXT_DP
END IF
CreateRegKeyValue REG_FILE_EXT_DP, REG_KEY_DPFILE
RestoreCursor CursorSave%
END IF
WINFAX_DDE:
WfxPbString$ = DDELEVEL + "," + DestExe$ + "," + DDESERVICE + "," + DDETOPIC + "," + CLASSNAME_PBEDB
CreateIniKeyValue WININI, INI_SEC_WFXPBLINKS, DDESERVICE, WfxPbString$, cmoOverwrite
IMPORT_EXPORT:
''*** add tags to amaze.ini for import/export filters
IMPEXPLIST$ = "List"
MakeListFromSectionKeys IMPEXPLIST$, INF_SEC_IMPORTEXPORT
FOR i% = 1 TO GetListLength(IMPEXPLIST$) STEP 1
ImpExpSecKey$ = GetListItem(IMPEXPLIST$, i%)
ImpExpFileSpec$ = MakePath(DEST$, GetSectionKeyFilename(INF_SEC_IMPORTEXPORT, ImpExpSecKey$) )
CreateIniKeyValue ini$, INF_SEC_IMPORTEXPORT, ImpExpSecKey$, ImpExpFileSpec$, cmoOverwrite
NEXT i%
VERSION_INFO:
CreateIniKeyValue ini$, INI_SEC_VERSION, INI_KEY_DP, PROG_VERSION, cmoOverwrite
ADD_PROG_ICON:
IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
iResponse% = MsgYesNo(ADD_PROGMAN_DLGTEXT_1, ADD_PROGMAN_DLGTEXT_2, ADD_PROGMAN_DLGCAPTION)
IF iResponse% = YES THEN
CreateProgmanGroup PROGMAN_GROUP_DAILY_PLANNER, "", cmoNone
ShowProgmanGroup PROGMAN_GROUP_DAILY_PLANNER, 1, cmoNone
CreateProgmanItem PROGMAN_GROUP_DAILY_PLANNER, PROGMAN_ITEM, DestExe$, "", cmoOverwrite
CreateProgmanItem PROGMAN_GROUP_DAILY_PLANNER, PROGMAN_README, MakePath(DEST$,GetSectionKeyFilename(INF_SEC_APPFILES, INF_KEY_README)), "", cmoOverwrite
UIPop 1
ELSE ''No
UIPop 1
END IF
END IF ''**GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN**
'$IFDEF STARTUP_ICON
ADD_STARTUP_ICON:
IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
nWinMajVer% = GetWindowsMajorVersion()
nWinMinVer% = GetWindowsMinorVersion()
IF nWinMinVer% >= 10 THEN
iResponse% = MsgYesNo(ADD_STARTUP_31_DLGTEXT_1, ADD_STARTUP_31_DLGTEXT_2, ADD_STARTUP_DLGCAPTION)
ELSE
iResponse% = MsgYesNo(ADD_STARTUP_30_DLGTEXT_1, ADD_STARTUP_30_DLGTEXT_2, ADD_STARTUP_DLGCAPTION)
END IF
IF iResponse% = YES THEN
IF nWinMinVer% >= 10 THEN
''Remove any old entries first from progman and win.ini
iIniRet% = RemoveFileFromIniKey(WININI, INI_SEC_WINDOWS, INI_KEY_RUN, FILENAME_PBEDB)
iRet% = DeleteProgmanItem(PROGMAN_GROUP_STARTUP, PROGMAN_ITEM)
CreateProgmanItem PROGMAN_GROUP_STARTUP, PROGMAN_ITEM, DestExe$, "", cmoOverwrite
ELSE
''Remove any old entries first
iIniRet% = RemoveFileFromIniKey(WININI, INI_SEC_WINDOWS, INI_KEY_RUN, FILENAME_PBEDB)
szOldRun$ = GetIniKeyString (WININI,INI_SEC_WINDOWS,INI_KEY_RUN)
IF (INSTR(szOldRun$, DestExe$) = 0) THEN
IF (LEN(szOldRun$) + LEN(DestExe$)+1) > 121 THEN
i% = DoMsgBox(ADD_STARTUP_ERROR, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
ELSE
CreateIniKeyValue WININI,INI_SEC_WINDOWS,INI_KEY_RUN, szOldRun + " " + DestExe$, cmoOverwrite
END IF
END IF
END IF
UIPop 1
ELSE ''No
''Remove any old entries from the win.ini
iIniRet% = RemoveFileFromIniKey(WININI, INI_SEC_WINDOWS, INI_KEY_RUN, FILENAME_PBEDB)
''IF nWinMinVer% >=10 THEN
'' iRet% = DeleteProgmanItem(PROGMAN_GROUP_STARTUP, PROGMAN_ITEM)
''END IF
UIPop 1
END IF
END IF ''**GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN**
'$ENDIF
CLEANUP:
QUIT:
ON ERROR GOTO ERRQUIT
IF (ERR = 0) AND (bRestart% = TRUE) THEN
dlg% = EXITRESTART
ELSEIF ERR = 0 THEN ''no need to restart
dlg% = EXITSUCCESS
ELSEIF ERR= STFQUIT THEN
dlg% = EXITQUIT
ELSE
dlg% = EXITFAILURE
END IF
QUITL1:
sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO QUITL1
END IF
UIPop 1
END
ERRQUIT:
i% = DoMsgBox(ERROR_INSTALL, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
END
''------------------------------------------------------------------------------
'' FUNCTIONS
''------------------------------------------------------------------------------
GETPATH:
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "END"
GETPATHL1:
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", DESTHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
olddest$ = DEST$
DEST$ = GetSymbolValue("EditTextOut")
'$IFDEF DEBUG
'' Debug PRINT THEMEDEST$
'$ENDIF ''DEBUG
''Validate new path.
IF IsDirWritable(DEST$) = 0 THEN
GOSUB BADPATH
GOTO GETPATHL1
END IF
UIPop 1
''Recalc if path changed.
IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
RecalcPath
END IF
olddest$ = ""
GOTO INSTALL
ELSEIF sz$ = "REACTIVATE" THEN
RecalcPath
GOTO GETPATHL1
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO GETPATHL1
ELSE
UIPop 1
GOTO INSTALL
END IF
TOOBIG:
sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
GOTO TOOBIG
END IF
UIPop 1
RETURN
BADPATH:
sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
GOTO BADPATH
END IF
UIPop 1
RETURN
BADNAME:
sz$ = UIStartDlg(CUIDLL$, CBBADNAME, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO BADNAME
END IF
UIPop 1
RETURN
ASKQUIT:
sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
IF sz$ = "EXIT" THEN
UIPopAll
ERROR STFQUIT
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ASKQUIT
ELSE
UIPop 1
END IF
RETURN
'**
'** Purpose:
'** Adds the specified option files to the copy list.
'** Arguments:
'** ftype% - type of files to add, one of the following:
'** APPFILES, THEMEPACK
'** Returns:
'** none.
'*************************************************************************
SUB AddOptFilesToCopyList (ftype%) STATIC
IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
SrcDir$ = GetSymbolValue("STF_SRCDIR")
IF ftype% = APPFILES THEN
IF GetListLength(BadFileList$) <= 0 THEN
AddSectionFilesToCopyList INF_SEC_APPFILES, SrcDir$, DEST$
'AddSectionFilesToCopyList INF_SEC_COMMON, SrcDir$, GetWindowsDir()
ELSE
FilesToInstall$ = "FilesToInstall"
MakeListFromSectionKeys FilesToInstall$, INF_SEC_APPFILES
FOR i%=1 TO GetListLength(FilesToInstall$) STEP 1
FOR j%=1 TO GetListLength(BadFileList$) STEP 1
IF GetListItem(BadFileList$, j%) <> GetSectionKeyFilename(INF_SEC_APPFILES, GetListItem(FilesToInstall$, i%)) THEN
AddSectionKeyFileToCopyList INF_SEC_APPFILES, GetListItem(FilesToInstall, i%), SrcDir$, DEST$
EXIT FOR
END IF
NEXT j%
NEXT i%
RemoveSymbol FilesToInstall$
'$IFDEF COMMON
FilesToInstall$ = "FilesToInstall"
MakeListFromSectionKeys FilesToInstall$, INF_SEC_COMMON
FOR i%=1 TO GetListLength(FilesToInstall$) STEP 1
FOR j%=1 TO GetListLength(BadFileList$) STEP 1
IF GetListItem(BadFileList$, j%) <> GetSectionKeyFilename(INF_SEC_COMMON, GetListItem(FilesToInstall$, i%)) THEN
AddSectionKeyFileToCopyList INF_SEC_COMMON, GetListItem(FilesToInstall, i%), SrcDir$, GetWindowsDir()
EXIT FOR
END IF
NEXT j%
NEXT i%
RemoveSymbol FilesToInstall$
'$ENDIF
END IF
nWinMajVer% = GetWindowsMajorVersion()
nWinMinVer% = GetWindowsMinorVersion()
''*** Add the import export files to the list
AddSectionFilesToCopyList INF_SEC_IMPORTEXPORT, SrcDir$, DEST$
IF (bInstallPrefs% = TRUE) THEN
AddSectionKeyFileToCopyList INF_SEC_PREFS, INF_KEY_PREFS, SrcDir$, DEST$
END IF
IF (bWinSysDirAccess%) THEN
szCommonDir$ = GetWindowsSysDir()
ELSE
szCommonDir$ = DEST$
END IF
IF (bInstallCtl3D% = TRUE) THEN
AddSectionKeyFileToCopyList INF_SEC_OTHER, INF_KEY_CTL3D, SrcDir$, szCommonDir$
bRestart% = TRUE
ELSE
bRestart% = bRestart%
END IF
IF (nWinMajVer% <= 3) AND NOT(nWinMinVer% >= 10) THEN
AddSectionKeyFileToCopyList INF_SEC_OTHER, INF_KEY_COMMON, SrcDir$, szCommonDir$
AddSectionKeyFileToCopyList INF_SEC_OTHER, INF_KEY_SHELL, SrcDir$, szCommonDir$
''bRestart% = TRUE
ELSE
bRestart% = bRestart%
END IF
END IF
SrcDir$ = ""
END IF
END SUB
'**
'** Purpose:
'** Recalculates disk space for the given option files and sets
'** the status info symbol "StatusItemsText".
'** Arguments:
'** ftype% - type of files to add, one of the following:
'** APPFILES, THEMEPACK
'** Returns:
'** none.
'*************************************************************************
SUB RecalcOptFiles (ftype%) STATIC
DIM iExtraDiskSpace%
CursorSave% = ShowWaitCursor()
ClearCopyList
AddOptFilesToCopyList ftype%
fExtra% = 0
IF ftype% = APPFILES THEN
ListSym$ = APPNEEDS$
IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
''Add extra cost to Windows drive for ini/progman, etc.
ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
nWinMajVer% = GetWindowsMajorVersion()
nWinMinVer% = GetWindowsMinorVersion()
iExtraDiskSpace% = iExtraDiskSpace% + MISC_DISK_SPACE
IF (nWinMajVer% <= 3) AND NOT(nWinMinVer% >= 10) THEN
iExtraDiskSpace% = iExtraDiskSpace% + COMMON_DLG_DISK_SPACE
END IF
ReplaceListItem EXTRACOSTS$, ndrive%, LTRIM$(STR$(iExtraDiskSpace%))
fExtra% = 1
END IF
END IF
StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
cost& = 0
FOR i% = 1 TO 26 STEP 1
cost& = cost& + VAL(GetListItem(ListSym$, i%))
NEXT i%
ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
IF StillNeed& > 0 THEN
ReplaceListItem BIGLIST$, ftype%, "YES"
ELSE
ReplaceListItem BIGLIST$, ftype%, ""
END IF
IF fExtra% THEN
ReplaceListItem EXTRACOSTS$, ndrive%, "0"
END IF
RestoreCursor CursorSave%
ListSym$ = ""
END SUB
'**
'** Purpose:
'** Recalculates disk space and sets option status info according
'** to the current destination path.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB RecalcPath STATIC
CursorSave% = ShowWaitCursor()
RecalcOptFiles APPFILES
RestoreCursor CursorSave%
END SUB
'**
'** Purpose:
'** Appends a file name to the end of a directory path,
'** inserting a backslash character as needed.
'** Arguments:
'** szDir$ - full directory path (with optional ending "\")
'** szFile$ - filename to append to directory
'** Returns:
'** Resulting fully qualified path name.
'*************************************************************************
FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
IF szDir$ = "" THEN
MakePath = szFile$
ELSEIF szFile$ = "" THEN
MakePath = szDir$
ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
MakePath = szDir$ + szFile$
ELSE
MakePath = szDir$ + "\" + szFile$
END IF
END FUNCTION
'**
'** Purpose:
'** Pads a string so that it is two bytes. Adds leading zero,
'**
'** Arguments:
'** szNum$ - intended to take a one "digit" string
'**
'** Returns:
'** String padded with a zero
'*************************************************************************
FUNCTION PAD (szNum$) STATIC AS STRING
IF LEN(szNum$) = 1 THEN
PAD = "0"+szNum$
ELSE
PAD = szNum$
END IF
END FUNCTION